Page({
  // 页面初始数据
  data: {
    account: '',      // 存储账号输入值
    password: '',     // 存储密码输入值
    loading: false    // 控制加载状态
  },

  // 处理账号输入事件
  onAccountInput(e) {
    // 去除首尾空格后更新账号数据
    this.setData({ account: e.detail.value.trim() })
  },

  // 处理密码输入事件
  onPasswordInput(e) {
    // 去除首尾空格后更新密码数据
    this.setData({ password: e.detail.value.trim() })
  },

  // 账号密码登录处理
  handleLogin() {
    // 先执行表单验证
    if (!this.validateForm()) return

    // 显示加载状态
    this.setData({ loading: true })
    
    // 模拟登录请求（实际开发需替换为真实接口）
    setTimeout(() => {
      // 关闭加载状态
      this.setData({ loading: false })
      
      // 存储用户信息到本地缓存
      wx.setStorageSync('userInfo', { avatarUrl: '', nickName: '' }) // 预留用户信息字段
      wx.setStorageSync('account', this.data.account)  // 存储账号
      wx.setStorageSync('password', this.data.password) // 存储密码（实际应加密存储）
      
      // 跳转到首页并关闭所有页面
      wx.reLaunch({
        url: '/pages/shoye/shoye'
      })
    }, 1500)  // 模拟1.5秒网络延迟
  },

  // 微信快捷登录处理
  handleWechatLogin() {
    // 显示加载状态
    this.setData({ loading: true })
    
    // 调用微信用户信息授权接口
    wx.getUserProfile({
      desc: '登录',  // 授权弹窗说明文字
      success: (res) => {  // 授权成功回调
        this.setData({ loading: false })
        
        // 设置模拟账号密码（实际开发需对接后端登录接口）
        wx.setStorageSync('account', '1')
        wx.setStorageSync('password', '1')
        wx.setStorageSync('userInfo', res.userInfo) // 存储微信用户信息
        
        // 跳转首页
        wx.reLaunch({
          url: '/pages/shoye/shoye'
        })
      },
      fail: (err) => {  // 授权失败回调
        this.setData({ loading: false })
        // 显示错误提示（不显示图标）
        wx.showToast({ title: '微信登录失败', icon: 'none' })
        console.error('微信登录失败:', err)  // 打印错误日志
      }
    })
  },

  // 表单验证方法
  validateForm() {
    const { account, password } = this.data
    
    // 账号非空验证
    if (!account) {
      wx.showToast({ title: '请输入账号', icon: 'none' })
      return false
    }
    
    // 密码非空验证
    if (!password) {
      wx.showToast({ title: '请输入密码', icon: 'none' })
      return false
    }
    
    return true  // 验证通过
  }
})